#ifndef MWERABASE
#define MWERABASE

#include <vector>
#include "point.h"
#include "graph.h"
#include "link.h"

class MweraBase{
    private:
        std::vector< std::vector<Point*> > obstacles;
        Graph gr;
    public:
        MweraBase();
	Graph* getGraph();
        void createObstacle(std::vector<Point*>);
        Point* createPoint(int x,int y,bool autoLink = true);
        Point* createPoint(Point* p,bool autoLink = true);
        std::vector<Point*> getPoints();
        std::vector<Link*> getLinks();
        std::vector< std::vector<Point*> > getObstacles();
        void createLink(Point* p1,Point* p2);
        void checkLinks();
        bool isInAnObstacle(Link* link);
        bool intersectAnObstacle(Link* link);
        friend std::ostream & operator<<( std::ostream &, MweraBase);
};

#endif
